package Filter;

import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebFilter(filterName = "Filtro", urlPatterns = {"/*"})
public class Filtro implements Filter {

    public Filtro() {
    }

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        
        
        //Establecemos el tipo 
//        request.setCharacterEncoding("UTF-8");
//        response.setContentType("text/html;charset=UTF-8");   
        
        String search = (request.getParameter("suggest1") != null ? request.getParameter("suggest1") : "");
        String email = (request.getParameter("email") != null ? request.getParameter("email") : "");
        String msg = (request.getParameter("msg") != null ? request.getParameter("msg") : "");
        String deleteAllOrders = (request.getParameter("deleteAllOrders") != null ? request.getParameter("deleteAllOrders") : "");
        boolean wrong = true;
                  
        if (email.equals("admin")) {
            System.out.println("Filtro: Alguien esta accediendo a la administracion del sistema");
        } else {
            if(email.isEmpty())
            System.out.println("");
            else
            System.out.println("Filtro: El usuario "+email+" esta accediendo al sistema");
        }

        if (search.isEmpty()) {
            System.out.println("");
        } else {
            System.out.println("Filtro: El usuario esta buscando " + search);
        }

        if (msg.isEmpty()) {
            System.out.println("");

        } else {
            System.out.println("Filtro: Email enviado a la tienda " + msg + " por "+email);
        }

        if (deleteAllOrders.isEmpty()) {
            System.out.println("");
        } else {
            System.out.println("Filtro: Se van a borrar todos los pedidos!");
        }
        
        StringBuilder buffer = new StringBuilder();
        for (Enumeration parametrosPeticion = request.getParameterNames();
                parametrosPeticion.hasMoreElements();) {
            String nombreParametro = (String) parametrosPeticion.nextElement();
            String valoresDeParametros[] = request.getParameterValues(nombreParametro);
            int numeroParametros = valoresDeParametros.length;
            buffer.append(nombreParametro);
            buffer.append(" = ");
            for (int i = 0; i < numeroParametros; i++) {
                if(valoresDeParametros[i].equals(""))
                {
                    wrong = true;
                    ((HttpServletResponse)response).sendRedirect("errorAction.html"); return;               
                }
                
                /*if(valoresDeParametros[i].equals("admin") || valoresDeParametros[i].equals("Admin"))
                {
                    System.out.println("Filtro: Redirecion al administrador!");
                    ((HttpServletResponse)response).sendRedirect("Admin/Admin.jsp"); return;               
                }*/
                buffer.append(valoresDeParametros[i]);
                buffer.append(" | ");
                if (i < numeroParametros - 1) {
                    buffer.append(",");
                }
            }
        }
        System.out.println("Filtro: Recibida peticion desde: "
                + request.getRemoteHost() + " :: " + request.getProtocol());
        if (!buffer.toString().equals("")) {
            System.out.println("Filtro: Peticion recibida: " + buffer);

        }



        chain.doFilter(request, response);
        
    }

    public void destroy() {
    }

    public void init(FilterConfig filterConfig) {
    }
}
